21
תגובות
עם איזה פונקציה מדפיסים שאילתא?
21 תשובות
כדי לראות האם היא תקינה בתחביר שלה ?
אני לא חושב שיש אחת כזו . צריך פשוט להעתיק את מה שבמרחאות ולהדפיס אותו...
שום פונקציה. תדפיס עם echo.
אני רוצה לעשות משהו כמו זה אבל שעובד
mysql_select_db("user", $ConnectDB);
$result = mysql_query("SELECT Name FROM user");
print $result;
$result = mysql_query("SELECT Name FROM user");
print $result;
$result = mysql_query("SELECT Name FROM user");
$array = mysql_fetch_array($result);
echo $array['username'];
$array = mysql_fetch_array($result);
echo $array['username'];
fetch_array זה בזבוז. תשתמש ב-fetch_assoc או fech_row.
כי המצביע הפנימי של הפונקציה הזאת מתחיל מהשורה הראשונה. ל-php אין מושג באיזו צורה אתה תרצה להדפיס את השורות והאם בכלל תרצה להדפיס את כולן, לכן הוא משאיר את זה לך. כל זימון חדש שלה יזיז את המצביע הפנימי קדימה. לכן אתה יכול להשתמש בלולאה.
אז איך זה שאני כותב פעמיים את השורה
print $array[Name];
זה מראה לי את אותו ערך
כתבתי את זה
while ($row = mysql_fetch_array($result, MYSQL_NUM))
{
printf($row[1]);
}
{
printf($row[1]);
}
אבל את השורה הראשונה הוא לא מדפיס
@soogo
אתה צריך לזמן את fetch שוב כדי לקבל את השורה הבאה.
$q = mysql_query("SELECT `name` FROM `table`");
$r = mysql_fetch_assoc($q);
echo $r['name'];
$r = mysql_fetch_assoc($q);
echo $r['name'];
..
..
..
..
$r = mysql_fetch_assoc($q);
echo $r['name'];
$r = mysql_fetch_assoc($q);
echo $r['name'];
..
..
..
..
בפעם הראשונה נדפיס את העמודה name של השורה הראשונה, בפעם השנייה את name של השורה השנייה וכו' וכו'.
לרוב, עושים את זה עם while:
while ($r = mysql_fetch_assoc($q)) {
echo $r['name'];
}
echo $r['name'];
}
זה ידפיס לנו את העמודה name מכל השורות שחזרו מהשאילתה, שורה אחר שורה.
מה שקורה, זה שפונקציות ה-fetch למינהן מחזירות false כשאין יותר שורות. כל עוד יש שורות הן יחזירו את התוצאה במערך/אובייקט (תלוי באיזו פונקציה השתמשנו). מערך/אובייקט נחשב ל-true (מערך/אובייקט לא ריק, אבל fetch לא יכולה להחזיר מערך/אובייקט ריק).
לכן - כל עוד יש עוד שורות זמינות מהשאילתה, ה-while ימשיך לרוץ וכל פעם תכנס למשתנה r השורה הבאה. ברגע שלא יהיו עוד שורות, fetch תחזיר false והלולאה תיעצר.
$result = "SELECT * FROM `table` WHERE `row`='row1'";
mysql_query($result);
mysql_query($result);
מה שטויות בזה?, הוא לא יודע להמשיך אחרי זה עם mysql_fetch_assoc() ?
בשביל מה fetch_assoc לפני ה-while? אתה מאבד שורה ככה.